home *** CD-ROM | disk | FTP | other *** search
-
-
-
- CRYSTAL PLAYER Version 2.70
-
- Un player de MOD simple et des routines pour vos
- programmes
-
-
- Programmé par Sébastien GRANJOUX
- Dilvish / MWB
-
-
-
-
- ATTENTION: Vous ne pouvez utiliser ce programme qu'à vos risques
- et périls. Je ne saurais être tenu pour responsable de toutes
- pertes ou dommages conséquents à son utilisation. Je ne donne
- aucune garantie quant à son fonctionnement à part le fait qu'il
- occupera de la place sur votre disque dur.
-
-
-
-
- Sommaire
- -------------------------------------------------------------------------------
-
-
- I ................................................. Licence
- II ................................... Contenu de l'archive
-
- III ....................................... Fonctionnalités
- IV .......................................... Le MOD player
-
- V ............................................. Utilisation
- VI ....................... Les fonctions de la bibliothèque
- VII .............................. Questions souvent posées
-
- VIII ........................................ Remerciements
- IX ............................................... Contacts
- X .......................... Où trouver la dernière version
-
-
-
-
- Chapitre I : Licence
- -------------------------------------------------------------------------------
-
-
- Ce programme vous permet de jouer des modules (fichiers
- musicaux avec l'extension .MOD), et comprend des routines que
- vous pouvez utiliser dans vos propres programmes, en respectant
- les conditions suivantes:
-
- Vous pouvez inclure librement Crystal Player, dans n'importe
- quel freeware, si vous me mentionnez comme l'auteur des routines
- sonores. J'aimerais aussi que vous m'envoyez un message pour me
- dire où je peux trouver votre programme, ce dernier point n'étant
- pas une obligation.
- Pour une utilisation commerciale (en incluant les
- sharewares), vous devez me contacter pour connaître les
- conditions supplémentaires et obtenir mon accord. Je pense
- demander une version complète (enregistrée) de votre programme et
- une petite somme dépendant du prix de votre programme.
-
- Ce programme est fourni avec toutes ses sources, pour vous
- permettre de les modifier et de les adapter à vos besoins. Ces
- modifications doivent rester strictement personnelles, mais je
- serais très heureux de recevoir des améliorations à inclure dans
- la nouvelle version. Je veux juste garder un contrôle sur le
- dévelloppement de mon programme.
-
- Vous pouvez par contre distribuer librement ce programme dans
- sa version originale avec tous les fichiers qui l'accompagnent,
- et je vous encourage vivement à le faire, à la condition que vous
- ne preniez pas plus de 5 USD de frais pour sa diffusion.
-
- Allez voir les informations à la fin de ce fichier pour
- savoir comment me contacter.
-
-
-
-
- Chapitre II : Contenu de l'archive
- -------------------------------------------------------------------------------
-
- L'archive doit avoir le nom suivant CRYSxxxl où xxx est le
- numéro de version sur trois chiffres (exemple 240 veut dire
- version 2.4). La lettre l est un espace pour les versions
- publiques. Mais par exemple,si c'est un B c'est une version de
- test.Ce qui veut dire qu'elle n'est probablement pas complète et
- qu'il y a encore plus de chance d'avoir des bugs.
-
- L'archive normal comprend les 38 fichiers suivants:
-
- CRYS.EXE Version exécutable du modplayer.
-
- CRYSTAL.LIB Bibliothèque pour un programme C.
- CRYSTAL.H Fichier d'en-tête pour la bibliothèque.
-
- CRYSTAL.TPU Unité pour un programme en Turbo Pascal.
- CRYSINT.TPU Unité pour les routines internes.
- CRYSTAL.PAS Source de l'unité de CRYSTAL.
- CRYSINT.PAS Source de l'unité des routines internes.
-
- CRYSEXP.C Exemple d'utilisation en Turbo C.
- CRYSEXP.PAS Exemple d'utilisation en Turbo Pascal.
-
- CRYSFR.DOC Manuel de l'utilisateur, vous êtes en train de le lire.
- CRYSENG.DOC Manuel de l'utilisateur en anglais.
- HISTORY.DOC Historique du programme (uniquement en anglais).
- FILE_ID.DIZ Description pour les listes des BBS.
-
-
- C0MULTI.ASM Code de démarrage du player.
- CRYS.ASM Programme principal de Crystal MOD player.
- CRYSPLAY.ASM Routines récupérant diverses infos sur le module.
- GMODE3.ASM Routines d'affichage en mode texte 3 (80x25 16 colors).
-
- MAKEFILE.MAK Fichier make pour l'unité pascal et la bibliothèque C.
-
- CRYSERR.INC Définitions des codes d'erreurs.
- CRYSID.INC Définitions des numéros des cartes sonores.
- CRYS260.ASM Principales routines pour jouer un module.
-
- CRYSDEV.INC Déclarations pour les drivers.
- CRYSDEV.ASM Routines communes à différents drivers.
- DAC.ASM Driver pour un Convertisseur Numérique->Analogique.
- SPEAKER.ASM Driver pour le haut parleur interne.
- SNDBLAST.ASM Driver pour les Sound Blaster (8 bits mono).
- GUS.ASM Driver pour la GUS.
- SNDPRO.ASM Driver pour les Sound Blaster (8 bits stereo).
- ADLIB.ASM Driver pour la carte Adlib.
-
- CRYSLOAD.INC Déclarations pour charger des modules.
- CRYSLOAD.ASM Routines communes pour charger des modules.
- LOADMOD.ASM Routines pour charger un module au format MOD.
- FLOADMOD.ASM Déclaration pour charger un MOD dans un fichier.
- MLOADMOD.ASM Déclaration pour charger un MOD dans la mémoire.
- OLOADMOD.ASM Déclaration pour charger un MOD dans un overlay.
- CRYSFILE.ASM Routines de chargement à partir d'un fichier.
- CRYSOVL.ASM Routines de chargement à partir d'overlay.
- CRYSMEM.ASM Routines de chargement à partir de la mémoire.
-
-
-
-
- Chapitre III : Fonctionnalités
- -------------------------------------------------------------------------------
-
-
- Ce programme est entièrement programmé en assembleur et
- contient des instructions spécifiques au 386. Il me marchera donc
- pas sur les XT ni les 286. Il peut utiliser les cartes sonores
- suivantes:
- - le haut parleur interne (le son est pas si mal)
- - un DAC (convertisser numérique->analogique) sur un port
- parallèle
- - une carte adlib
- - une Sound Blaster (SB, SB pro et SB16) en mode mono ou stereo
- mais toujours 8 bits
- - une Gravis UltraSound
-
- Il accepte que les fichiers .MOD avec 15 ou 31 instruments et
- avec 4, 6 ou 8 voies. Mais chaque sample doit avoir une longueur
- inférieure à 63Ko. Les effets suivants ne sont pas reconnus:
- E3,E4,E5,E7 et EF. Par contre il utilise les 8 octaves de scream
- tracker 3.
-
- Comme vous le verrez en lisant la partie historique, ce
- programme a beaucoup évolué ce qui fait qu'il n'est pas des plus
- facile à comprendre. Il contient donc au moins quelques bugs et
- si quelque chose ne marche pas, vous en avez peut être trouvé un
- nouveau. Dans ce cas, contactez-moi, généralement, j'arrive à les
- corriger assez vite. Si c'est un MOD particulier qui marche mal,
- j'aimerais aussi que vous me le transmettiez ou au moins son nom
- et l'endroit ou le trouver. J'ai choisi de me pas respecter
- parfaitement le format du pro tracker (il y a 8 octaves et un
- problème possible avec les tempo étendus), donc certaines
- différences sont normales.
-
-
-
-
- Chapitre IV : Le MOD player
- -------------------------------------------------------------------------------
-
-
- Le MOD player contenu dans l'archive n'est pas vraiment
- comparable aux autres mod player et il possède peu d'option. Il
- est fourni pour vous permettre de juger facilement de la qualité
- (et des défauts) des routines sonores et vous donne un exemple
- d'utilisation de ces routines en assembleur. Il utilise des
- informations internes des routines de restitution de la musique
- et vous montre comment les utiliser si vous en avez vraiment
- besoin. Vous pouvez refaire un nouveau mod player avec mes
- routines mais elles ne sont pas faites pour cela car elles gèrent
- assez peu d'options et privilégient la vitesse à la qualité.
-
- Il s'utilise de manière assez simple et si vous l'appelez
- sans paramètre, il affiche une page d'aide. Vous devez lui passer
- comme paramètre au moins le nom d'un fichier MOD (l'extension est
- optionnelle). Il choisira par défaut la meilleure carte sonore
- qu'il trouvera dans vos variables d'environnement. Vous pouvez
- forcer une carte spéciale, même si elle n'existe pas dans les
- variables d'environnement, ou changer la fréquence de mixage par
- défaut (autour de 20KHz) en utilisant les options suivantes:
-
- /FRxxxx Fréquence de mixage en dizaine Hertz
-
- /SK Haut parleur interne
- /DCp DAC sur le port parallèle p (1 to 4)
- /SBp,i,d Sound Blaster (8 bits mono) à l'adresse p (en
- hexadécimal 220 par exemple) avec l'IRQ i et le
- canal DMA d.
- /GSp Gravis UltraSound à l'adresse p (en hexadécimal)
- /SPp,i,d Sound Blaster pro (8 bits stereo) à l'adresse p
- (toujours en hexadécimal) avec l'IRQ i et le
- canale DMA d.
- /AD Carte adlib
-
- Les paramètres p, i ou d ne sont pas obligatoires mais pas
- les virgules, cela oblige le player à chercher ces valeurs dans
- les variables d'environnement. Si elles n'existent pas il prend
- des valeurs par défaut.
-
- Dans le player, le temps CPU utilisé correspond uniquement au
- temps, utilisé par le player sans les rafraichissements d'écran à
- part ceux de l'écran principal (instrument, aide ou vu-mètres).
- Si la musique sort mal, cette valeur n'est plus significative. La
- mémoire utilisé comprend par contre le player entier avec des
- routines que vous n'intégrerez à priori pas dans vos programmes
- comme l'affichage des vu-mètres.
-
-
-
-
- Chapitre V : Utilisation
- -------------------------------------------------------------------------------
-
-
- La source a été assemblée avec Turbo Assembleur en mode ideal
- et utilise des instructions 386. Les routines sonores sont
- principalement rassemblées dans CRYS260.ASM. Pour les utiliser
- vous devez utiliser juste la librairie et son fichier d'en-tête
- ou les deux unités pour le Turbo Pascal.
-
- Pour jouer de la musique, vous devez appeler une série de
- fonctions dans le bon ordre. Pour commencer, vous devez décider
- quelles sont les cartes sonores supportées par votre programme en
- appelant les fonctions USE correspondantes. Ces fonctions forcent
- le lieur à intégrer les drivers à votre programme. L'ordre dans
- lequel vous les appelez est l'ordre dans lequel DETECTSND
- trouvera les cartes sonores. Donc si vous pensez que la GUS est
- la meilleure carte mettez là en premier, pour qu'elle soit
- trouvée même si il a aussi une Sound Blaster sur le même
- ordinateur.
-
- Vous pouvez maintenant appeler DETECTSND pour trouver les
- cartes sonores disponibles. Cette fonction utilise juste les
- variables d'environement pour éviter des problèmes de
- compatibilités. Donc, si vous n'avez pas de SET BLASTER dans
- votre AUTOEXEC.BAT, cette fonction ne trouvera pas la Sound
- Blaster. Pour le DAC, vous pouvez utiliser DAC=port, avec un
- nombre entre 1 et 4 pour port, correspondant au port parallèle
- sur lequel est branché le DAC. Si la carte sonore ne possède pas
- de variable d'environnement attitrée, comme le haut parleur
- interne ou la carte adlib, elle est toujours détectée. Enfin
- retenez que cette fonction n'est pas obligatoire c'est juste une
- facilité qui vous est offerte.
-
- Maintenant, vous devez charger le module à jouer. Pour cela,
- vous pouvez utiliser FLOADMOD, MLOADMOD ou OLOADMOD suivant que
- le module est respectivement dans un fichier, dans une zone
- mémoire ou dans un overlay (simplement ajouté à la fin du
- programme). Comme avec la plupart des fonctions, si il y a un
- problème, la retenu sera levé et la fonction retournera un code
- d'erreur non nul. Ces fonctions sont les plus susceptibles de
- sortir une erreur à cause d'un fichier absent ou d'un manque de
- mémoire.
-
- Une fois le module chargé, vous devez intialiser le player
- avec SETMOD pour la carte sonore à utiliser. Elle doit être
- comprise dans celle déjà selectionnée au début avec les fonctions
- USE. Notez que cette fonction fait une vérification hardware pour
- vérifier si la carte sonore est réellement là. Vous ne pouvez pas
- appeler cette fonction avant LOADMOD car c'est dans cette
- fonction que la GUS charge les samples dans sa mémoire.
-
- Maintenant, vous n'avez plus qu'à commencer la musique avec
- STARTMOD, à la fin de cette fonction, la musique commence. Si
- vous voulez une bonne qualité sonore, éviter d'arrêter les
- interruptions, en appelant d'autres d'interruptions ou avec une
- instruction comme cli. Dans un language de haut niveau éviter les
- fonctions trop complexes. Le haut parleur interne est très
- sensible à cela.
-
- La musique joue, et vous pouvez maintenant utiliser les
- autres fonctions pour changer des paramètres de la musique dans
- n'importe quel ordre comme par exemple CHANGEVOL pour le volume.
- Mais il y a encore une fonction importante, qu'il fallait appeler
- à 50 Hz, (en fait à chaque frame défini en BPM dans le module)
- au moins dans les anciennes versions, c'est MAKEMOD. Cette
- fonction est très importante car elle calcule la musique.
- Maintenant elle est appelée automatiquement si le buffer est
- presque vide. Vous n'etes donc pas obligé de vous en occuper mais
- elle peut être utile pour éviter d'avoir des interruptions assez
- longues et aléatoires dans votre programme.
-
- Quand vous voulez arrêter la musique appelez simplement
- STOPMOD. Puis vous pouvez rappeler STARTMOD si vous voulez
- seulement une pause, ou SETMOD si vous voulez en plus changer de
- carte sonore ou même encore LOADMOD si vous voulez aussi changer
- de module. Mais attention, si vous voulez arrêter définitivement
- le programme ou charger un autre module appelez avant UNLOADMOD
- pour rendre au DOS la mémoire prise par le module.
-
-
-
-
- Chapitre VI : Les fonctions de la bibliothèque
- -------------------------------------------------------------------------------
-
-
- Toutes les fonctions utilisent la convention du pascal pour
- prendre leurs arguments. Elles sauvegardent toutes SI, DI, BP,
- SP, DS et SS, vous pouvez donc les utiliser directement en C. Les
- autres registres peuvent avoir été modifiés. Voici maintenant le
- détail de toutes les fonctions accéssibles.
- Le code d'erreur est un entier sur 16 bits décrit dans
- CRYSERR.INC, qui est nul si il n'y a pas eu d'erreur. De plus
- la retenue est levée en sortie si il y a eu une erreur sinon elle
- est baissée (utile pour les programmeurs en assembleur).
- Je rappele que dans la description des fonctions un octet est un
- entier sur 8 bits, un mot un entier sur 16 bits et un double mot
- un entier sur 32 bits, un pointeur long est un pointeur
- comprenant une partie offset sur 16 bits et une partie segment
- sur 16 bits.
-
-
- USEGUS,USESPK,USEDAC,USEADL,USESB,USESP,USENUL
-
- Action Ajoute le driver correspondant à votre programme.
-
- Entrée Aucune
- Sortie Un code d'erreur
-
- Notes Ces fonctions sont utilisées par le lieur pour
- ajouter les drivers à votre programme. Vous devez
- les appeler si vous voulez pouvoir utiliser les
- cartes sonores correspondantes par la suite.
- L'ordre dans lequel vous appelez ces fonctions, est
- l'ordre dans lequel DETECTSND trouve les cartes
- sonores.
-
-
- DETECTSND
-
- Action Détecte les cartes sonores installées en
- recherchant les variables d'environnement
- correspondantes.
-
- Entrée Un pointeur long sur un mot pour le numéro du driver
- Un pointeur long sur un mot pour l'adresse de port
- Un pointeur long sur un octet pour l'IRQ
- Un pointeur long sur un octet pour le canal DMA
- Sortie Un code d'erreur
-
- Notes Si vous placez des valeurs non nulles dans ces
- variables, cette routine ne les changera pas, vous
- pouvez ainsi forcer la routine à détecter la
- configuration d'une carte précise. Si vous mettez 0
- comme numéro de carte sonore, le programme
- cherchera les cartes sonores dans l'ordre de leur
- déclaration avec les fonctions USE décrite
- ci-dessus. Pour le DAC le programme recherche la
- variable d'environnement DAC=numero du port (1 à
- 4). Les cartes sonores restantes qui n'ont pas de
- variable d'environement (carte adlib ou haut
- parleur interne) sont toujours détectées.
-
-
-
- FLOADMOD
-
- Action Charge un MOD à partir d'un fichier.
-
- Entrée Un pointeur long sur une chaine terminée par 0
- Sortie Un code d'erreur
-
- Notes Cette fonction alloue elle-même la mémoire
- nécessaire aux instruments, chaque instrument
- utilisant quelque kilos octets de plus que dans le
- module. Chaque instrument doit pouvoir rentrer dans
- un segment (64Ko).
-
-
- MLOADMOD
-
- Action Charge un MOD déjà en mémoire.
-
- Entrée Un pointeur long sur le MOD en mémoire
- Sortie Un code d'erreur
-
- Notes
- Cette fonction fait exactement la même chose que la
- précédente sauf qu'elle ne charge pas le MOD à
- partir d'un disque. Il faut noter qu'elle alloue à
- nouveau de la place mémoire pour tous les
- instruments ce qui fait que le mod se trouve en
- fait deux fois en mémoire. Mais vous pouvez
- réutiliser cette place.
-
-
- OLOADMOD
-
- Action Charge un MOD à partir d'un overlay.
-
- Entrée La position du module dans votre programme sur un
- double mot
- Sortie Un code d'erreur
-
- Notes
- Cette fonction est équivalente à FLOADMOD et
- comporte donc les mêmes restrictions. Elle se
- contente de la position du mod dans l'éxecutable et
- se charge de retrouver son nom.
-
-
- UNLOADMOD
-
- Action Libère la mémoire utilisée par le module.
-
- Entrée Aucune
- Sortie Aucune
-
- Notes Cette fonction doit être appelée à la fin du
- programme ou avant de recharger un nouveau MOD pour
- rendre au DOS la place mémoire prise par les
- instruments.
-
-
-
- SETMOD
-
- Action Initialise la carte sonore et la fréquence de mixage.
-
- Entrée Un mot pour la fréquence de mixage en disaine de Herts
- Un mot pour le numéro de la carte sonore
- Un mot pour l'adresse de la carte sonore
- Un octet pour l'IRQ
- Un octet pour le DMA
- Sortie Un code d'erreur
-
- Notes Les numéros des cartes sonores sont:
- 1 = Haut parleur interne
- 2 = DAC
- 3 = Sound Blaster (mono 8 bits)
- 4 = Gravis Ultrasound
- 5 = Sound Blaster pro (stereo 8 bits)
- 6 = Adlib
- 7 = Pas de son
- Pour le DAC le port ne correspond pas à une adresse
- mais au numéro du port parallèle sur lequel il est
- connecté (1 à 4). Si on passe 0 comme paramètre en
- fréquence, la routine choisit une fréquence par
- défaut de 19kHz. Toutes les cartes n'utilisent pas
- forcément tous les paramètres. La GUS n'utilise pas
- la fréquence et joue toujours le mod à 44kHz. Seule
- la soundblaster utilise l'IRQ et le canal DMA. Pour
- la GUS il faut noter que c'est dans cette fonction
- que les instruments sont chargés dans sa mémoire
- mais il reste en mémoire centrale.
-
-
- STARTMOD
-
- Action Démarre la musique.
-
- Entrée Aucune
- Sortie Aucune
-
- Notes L'interruption de l'horloge est chainée à
- l'ancienne interruption qui est toujours appelée à
- 18,2 Hz. A partir de ce moment il faut éviter
- toutes les fonctions qui masquent les interruptions
- sous peine de dégrader considérablement la musique.
-
-
- MAKEMOD
-
- Action Calcule une "frame" (1/50s) de musique.
-
- Entrée Aucune
- Sortie Aucune
-
- Notes Cette fonction est maintenant appelée
- automatiquement par le player sous interruption.
- Mais vous pouvez l'appeler vous-même pour éviter
- des interruptions aléatoires et assez longues
- durant les parties critiques de votre programme.
- Dans ce cas, il faut l'appeler à au moins 50Hz.
- Cette fonction utilise un buffer de 4Ko donc à
- 22Khz mono, vous pouvez faire aucun appel pendant
- 180ms (9 frames), mais il faut rattraper après.
-
-
- STOPMOD
-
- Action Arrête la musique.
-
- Entrée Aucune
- Entrée Aucune
-
- Notes
- Cette fonction vous permet d'arrêter définitivement
- la musique ou de pouvoir faire une pause si vous
- rappeler STARTMOD par la suite. Il peut y avoir
- quelques problèmes, en particulier avec la
- soundblaster, si vous faites des pauses trop
- rapprochées.
-
-
-
- CHANGEVOL
-
- Action Fixe le volume global.
-
- Entrée Un octet pour le volume (0 to 63)
- Sortie Aucune
-
- Notes Change simplement le volume de toutes les voix. Ce
- n'est pas instantané à cause du buffer de 4Ko qui
- apporte du retard: 2 frames au maximum si MAKEMOD
- n'est jamais appelé mais plus sinon.
-
-
- SETMODPOS
-
- Action Fixe la position de la musique.
-
- Entrée Un mot égal à ligne+position*64
- Sortie Aucune
-
- Notes Change la position de la musique, même pendant
- qu'elle joue. Comme avec CHANGEVOL, le buffer
- apporte le même retard. La position dans la
- séquence commence à 0.
-
-
- GETMODPOS
-
- Action Récupère la position de la musique.
-
- Entrée Aucune
- Sortie Un mot égal à ligne+position*64
-
- Notes Lis la position de la musique, même pendant qu'elle
- joue. Le buffer apporte le même décalage qu'avec
- CHANGEVOL mais en avance cette fois ci.
-
-
-
-
- Chapitre VII : Questions souvent Posées
- -------------------------------------------------------------------------------
-
-
- Comment accéder aux variables des routines jouant les MOD
- pour par exemple afficher le numéro du pattern en cours ?
-
- >>> Pour rester le plus simple possible je n'ai documenté que les
- fonctions indispensables du module jouant les MOD et l'unité
- pascal ne contient que ces fonctions. Mais il y a d'autres
- symboles publics dans ce module et je les utilise dans mon
- player. Vous pouvez donc regarder dans CRYS260.ASM les différents
- symboles accesibles et voir comment les utiliser dans
- CRYSPLAY.ASM.
-
-
- Pourquoi le player marche plus lentement avec EMM386 ou
- QEMM386 ?
-
- >>> C'est tout à fait normal, c'est dû au fait que quand EMM386
- ou tout autre gestionnaire de mémoire étendue est en marche, la
- machine n'est plus en mode réel mais en mode virtuel 86 et dans
- ce mode, les interruptions prennent beaucoup plus de temps. Comme
- le player les utilise beaucoup, cela le ralenti enormément.
-
-
- Comment savoir si une fonction s'est bien déroulée ?
-
- >>> Normalement, mes routines renvoient 0 et la retenue est
- effacée si tout s'est bien passé. Dans le cas contraire, la
- retenue est mise et je renvoie un code d'erreur indiqué dans
- CRYSTAL.INC.
-
-
- Pourquoi je n'arrive pas à charger le module alors que j'ai
- le bon nom de fichier ?
-
- >>> Il est possible que la routine n'arrive pas à réserver de la
- mémoire pour charger les instruments. La routine demande cette
- mémoire au DOS et il faut donc que votre programme ne se l'ai pas
- entièrement approprié. Dans un programme C,il faut utiliser par
- exemple le modèle SMALL qui prend que 128Ko de mémoire au
- maximum. Pour un programme pascal, il faut mettre l'option $M
- pour limiter la taille du tas. Enfin si vous programmez en
- assembleur il faut rendre la mémoire inutilisée par votre
- programme au démarrage avec la fonction 4Ah du DOS que ce soit un
- programme COM ou EXE.
-
-
- Comment mettre un module en overlay ?
-
- >>> Il faut commencer par compiler votre programme exécutable en
- appelant la fonction OLOADMOD avec une valeur bidon. Puis vous
- regardez la taille de votre exécutable après l'avoir
- éventuellement compacté et vous recompilez votre programme en
- passant à OLOADMOD cette valeur. Vous pouvez alors recompacter le
- résultat avant d'ajouter le module mais il faut que la taille du
- programme reste la même. Enfin pour ajouter votre module il
- suffit de faire, par exemple, sous DOS "copy /B
- programme+module".
-
-
- Pourquoi la musique est moins forte qu'avec d'autres players ?
-
- >>> Le player ne fait aucune amplification donc ca ne déforme par
- le son mais le volume global est plus faible. Deuxièmement, pour
- les utilisateurs de sound blaster, le player ne modifie par le
- volume global de la carte. Ceci est un choix, et vous permet de
- régler le volume utilisé par défaut. Pour changer ce volume il
- faut utiliser l'utilitaire set-sbp. Par exemple pour mettre le
- volume au maximum il faut faire set-sbp /voc:15,15 /m:15,15.
-
-
- Comment compiler l'unité pascal avec le Turbo Pascal 7 ?
-
- >>> Normalement, il ne devrait pas y avoir de problème, mais vu
- que je ne possède que le Turbo Pascal 6, je distribue uniquement
- une unité pour cette version.
-
-
-
-
- Chapitre VIII : Remerciements
- -------------------------------------------------------------------------------
-
-
- Je tiens à remercier les personnes suivantes qui ont joué et
- continue de jouer un rôle dans le développement de ce programme:
-
- William Petiot pour les tests avec la GUS et les réglages.
- Tchi Southivong pour les nombreux tests avec la GUS et la SB.
- Stéphane Gigandet pour les nombreux tests avec la SB.
- Vincent Negrier pour les tests SB.
- Stéphane Scherrer pour des documents sur la Sound Blaster.
- Francis Gastellu pour le nom du player.
- Mark J.Cox pour m'avoir montrer que l'on peut jouer des MOD sur PC.
- CASCADA pour GUSPLAY.
- VLA pour des informations sur les transferts DMA.
- Bisounours / Nuage pour la traduction anglaise de ce fichier.
-
-
-
-
- Chapitre IX : Contacts
- -------------------------------------------------------------------------------
-
-
- Si vous voulez utiliser mes routines dans un programme
- commercial, si vous trouvez un ou des bug(s), si vous voulez une
- amélioration précise, si vous voulez des renseignements
- supplémentaires ou si vous avez juste quelques remarques à me
- faire vous pouvez me contacter à l'adresse suivante:
-
- M. Sébastien Granjoux
- 17 rue de Paris
- 92190 Meudon
- France
-
- Vous pouvez aussi me laisser un message sur un des ces BBS
- (en France près de Paris).
-
- Dune BBS +33-1-47-02-25-97 24.0 Bps
- Deadline BBS +33-1-46-48-67-63 14.4 Bps
- +33-1-46-44-57-96 28.8 Bps
- Eden BBS +33-1-34-15-39-67 28.8 Bps
- +33-1-34-13-95-28 28.8 Bps
-
- Ou avec mon adresse email. (j'espère que ca marche !)
-
- Sebastien.Granjoux@nuxes.frmug.fr.net
- sebastien.granjoux#barnabo@sparkhq.fdn.org
-
- N'hésitez pas à me contacter, je serai toujours heureux de
- vous répondre et cela me donnera l'impression que je n'ai pas
- écrit tout ce code pour rien.
-
-
-
-
- Chapitre X : Où trouver la dernière version
- -------------------------------------------------------------------------------
-
- La dernière version de Crystal Player sera toujours
- disponible sur les BBS suivants (il peut y avoir un petit
- delai).
-
- - France:
-
- Dune BBS +33-1-47-02-25-97 24.0 Bps
- Deadline BBS +33-1-46-48-67-63 14.4 Bps
- +33-1-46-44-57-96 28.8 Bps
- Eden BBS +33-1-34-15-39-67 28.8 Bps
- +33-1-34-13-95-28 28.8 Bps
-
- Si vous voulez aussi distribuer Crystal Player, appelez un de
- ces BBS.
-
-
-
- Sébastien Granjoux, 12/05/95
-
-